using ClickLand.CorporacionPlaza.Presentacion.Contratos.AdministracionVentas;
using ClickLand.CorporacionPlaza.Presentacion.Controladores;
using ClickLand.CorporacionPlaza.Presentacion.CorporacionPlazaWS;

namespace ClickLand.CorporacionPlaza.Presentacion.Presentadores.AdministracionVenta
{
    /// <summary> Clase que hace de presentador para la vista que agrega las ventas </summary>
    public class PresentadorAgregarVenta:PresentadorBase
    {
        #region Atributos
        /// <summary> Objeto que posee las propiedades de la vista </summary>
        private readonly IAgregarVentas _vista;


        /// <summary> Objeto que posee la definicion del controlador para la administracion de cliente </summary>
        private ControladorAdministracionContrato _controlador;

        #endregion

        #region Metodos

        /// <summary> Constructor de la clase </summary>
        /// <param name="vista"></param>
        public PresentadorAgregarVenta(IAgregarVentas vista)
        {
            _controlador = new ControladorAdministracionContrato();
            _vista = vista;
        }


        /// <summary> Metodo que se encgarga de las operaciones para cargar las paginas</summary>
        public void CargarPagina()
        {
            var contrato = new ContratoDto
                                       {
                                           Estado = 1,
                                           Establecimiento = new EstablecimientoDto(){Id = 2}
                                       };
            _vista.Contratos = _controlador.BuscarContrato(contrato);
        }


        /// <summary> Metodo que realiza las operaciones para mostrar la confirmacion </summary>
        public void MostrarConfirmacion()
        {
            ContratoDto contrato = _vista.ContratoSeleccionado;

            _vista.NombreClienteConfirmacion = contrato.Cliente.Nombre;
            _vista.NombreComercialConfirmacion = contrato.NombreComercial;
            _vista.FechaFinConfirmacion = contrato.FechaFin.ToString("dd/MM/yyyy");
            _vista.FechaInicioConfirmacion = contrato.FechaInicio.Value.ToString("dd/MM/yyyy");
            _vista.FechaMontoConfirmacion = _vista.FechaVenta.ToString("MM/yyyy");
            _vista.MontoConfirmacion = _vista.Monto.ToString("N");
        }


        /// <summary> Metodo que realiza las operaciones para agregar las ventas </summary>
        public bool AgregarVenta()
        {
            var venta = new VentaDto();
            venta.Estado = 1;
            venta.Fecha = _vista.FechaVenta;
            venta.Monto = _vista.Monto;
            venta.Contrato = _vista.ContratoSeleccionado;
            return _controlador.AgregarVenta(venta);
        }
        #endregion
    }
}
